//引入之前不好拼写的名字
import { INCREMENTCOUNT,DECREMENTCOUNT } from "../constant/countConst"
import store from "../store"

//把action单独放在一个文件夹里面 方便管理和维护

//累加的action
export const  incrementAction =(data=1)=>{
    return {
        type:INCREMENTCOUNT,
        data
    }
}

//累减的action
export const  decrementAction =(data=1)=>{
    return {
        type:DECREMENTCOUNT,
        data
    }
}

//异步action
export const waitIncrementAction =(data)=>{
    return ()=>{
        setTimeout(() => {
            store.dispatch({
                type:INCREMENTCOUNT,
                data
            })
          }, 2000);
    }
}

export const waitIncrementAction2 =(data)=>{
     //!!!!!这个return是不能写在异步里面的  waitIncrementAction2这个函数里同步代码执行完了 直接return一个undefined就完了不会return我们想象的那个对象
    //return写在异步函数里面同步代码 同步代码执行完就会直接return undefined
        setTimeout(() => {
            //return是在计时器的回调函数里面 计时器是个异步代码
            //这个return是不能写在异步里面的  waitIncrementAction2这个函数里同步代码执行完了 直接return一个undefined就完了不会return我们想象的那个对象
           return  {
                type:INCREMENTCOUNT,
                data
            }
          }, 2000);
//执行流程是先进来看见异步计时器 然后return一个undefined 就没了
}
